package user

import (
	"5title_gin/global"
	"5title_gin/internal/model/user"
	"5title_gin/pkg/utils/jwts"
	"5title_gin/pkg/utils/res"
	"github.com/gin-gonic/gin"
)

// GetUserInfo 获取用户信息
// @Tags 用户管理
// @Summary 获取用户信息
// @Description 根据 Token 获取当前登录用户的信息
// @Router /api/users/info [get]
// @Produce json
// @Success 200 {object} res.Response{data=user.UserModel}
func (UserApi) GetUserInfo(c *gin.Context) {
	claims, err := jwts.GetClaimsFromToken(c)
	if err != nil {
		return
	}
	// 查询用户信息
	var userInfo user.UserModel
	if err := global.DB.Where("id = ?", claims.Claims.UserID).First(&userInfo).Error; err != nil {
		res.FailWithMsg("用户不存在或查询失败", c)
		return
	}

	// 返回用户信息
	res.Ok(userInfo, "获取用户信息成功", c)
}
